Due to the proliferation of wireless networks, there are a continually increasing number of wireless devices in use today. These devices include mobile telephones, personal digital assistance (PDAs) with wireless communication capabilities, two-way pagers and the like. Concurrently with the increase of available wireless devices, software applications running on such devices have increased their utility. For example, the wireless device may include an application that retrieves a weather report for a list of desired cities or an application that allows a user to shop for groceries. These software applications take advantage of the ability to transmit data of the wireless network in order to provide timely and useful services to users, often in addition to voice communication. However, due to a plethora of different types of devices, restricted resources of some devices, and complexity of delivering large amounts of data to the devices, developing software applications remains a difficult and time-consuming task.
Currently, devices are configured to communicate with Web Services through Internet based Browsers and/or native applications. Browsers have the advantage of being adaptable to operate on a cross-platform basis for a variety of different devices, but have a disadvantage of requesting pages (screen definitions in HTML) from the Web Service, which hinders the persistence of data contained in the screens. A further disadvantage of Browsers is that the screens are rendered at runtime, which can be resource intensive. Applications for browsers are efficient tools for designing platform independent applications. Accordingly, different runtime environments, regardless of the platform, execute the same application. However, since different wireless devices have different capabilities and form factors, the application may not be executed or displayed as desired. Further, browser based application often require significant transfer bandwidth to operate efficiently, which may be costly or even unavailable for some wireless devices. Also, browsers offer very limited functionality without a live over the air (OTA) connection.
On the other hand, native applications are developed for a specific wireless device platform, thereby providing a relatively optimized application program for a runtime environment running on that platform. Also, such an application would allow organization and persistence of data collections in an optimized form on the device, which would be available even when the device is off-air. However, a platform dependent application introduces several drawbacks, including having to develop multiple versions of the same application and being relatively large in size, thereby taxing memory resources of the wireless device. Further, application developers need experience with programming languages such as Java and C++ to construct such native applications.
Further, applications are currently designed to communicate with Web Services. However, more frequently other types of backend servers are being made available to the applications. In order to expose these backend servers to the applications, Web Service are developed to interface with the backend servers.
Communication with the Web Service is typically achieved via Simple Object Access Protocol (SOAP). However, SOAP is big and complicated without offering much in the way of service. Also, adding a Web Service solely as an interface to the backend server adds unnecessary complexity to the system and may limit its functionality. It is preferable to be able to provide extensibility to different backend servers without requiring intimate a priori knowledge of the details of the backend server.
Yet further, application developers are provided with few tools to facilitate their development of the application for different backend servers. Accordingly, they are required to know the details of the communication language used in order to properly develop an application.
Accordingly there is a need for a system to facilitate providing a developer with access to a plurality of different backend servers while developing an application in order to overcome some of the disadvantages of the prior art.